package com.lqk.template.improve;

/**
 * @author lqk
 * @date 2021/12/8 15:37
 *
 * 模板方法模式的钩子方法
 *  1) 在模板方法模式的父类中，我们可以定义一个方法，它默认不做任何事，子类可以
 *  视情况要不要覆盖它，该方法称为“钩子”。
 *  2) 还是用上面做豆浆的例子来讲解，比如，我们还希望制作纯豆浆，不添加任何的配
 *  料，请使用钩子方法对前面的模板方法进行改造
 */
public class Client {
    public static void main(String[] args) {
        // 制作红豆豆浆
        System.out.println("----制作红豆豆浆----");
        SoyaMilk redBeanSoyaMilk = new RedBeanSoyaMilk();
        redBeanSoyaMilk.make();

        // 制作花生豆浆
        System.out.println("----制作花生豆浆----");
        SoyaMilk peanutSoyaMilk = new PeanutSoyaMilk();
        peanutSoyaMilk.make();

        // 制作纯豆浆
        System.out.println("----制作纯豆浆----");
        SoyaMilk pureSoyaMilk = new PureSoyaMilk();
        pureSoyaMilk.make();
    }
}
